/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* sortedSquares(int* nums, int numsSize, int* returnSize) {
    // 初始化两个指针
    int left = 0;
    int right = numsSize - 1;
    // 定义一个新数组
    int *squaresArray = (int *)malloc(sizeof(int) * numsSize);
    // 定义新数组的指针
    int index = numsSize - 1;
    // 用双指针遍历数组,由于不知道两个指针分别要遍历多少次，所以用while
    while (left <= right) {
        if (nums[left] * nums[left] > nums[right] * nums[right]) {
            squaresArray[index--] = nums[left] * nums[left];
            left++;
        }
        else {
            squaresArray[index--] = nums[right] * nums[right];
            right--;
        }
    }
    *returnSize = numsSize; // 设置返回数组的长度
    return squaresArray;
}